/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.utilidades;

import com.modelo.Campo;




import java.io.File;
import java.util.ArrayList;
import java.util.List;


import org.jdom.Document; // contener archivos xml en memoria
import org.jdom.Element;  // esto se refiere a la etiquetas
import org.jdom.input.SAXBuilder; // parser para construir documentos xml en memoria
/**
 *
 * @author Raul VB
 */

public class XMLReader 
{
    public static ArrayList<Campo> obtenerPropiedadesTabla(String ruta,String nombreTabla)
    {
        
        Element tabla = XMLReader.obtenerTabla(nombreTabla, ruta);
        System.out.println(tabla.getChild("Campos").getName());
        List<Element> elementos=(List<Element>)tabla.getChild("Campos").getChildren();
        ArrayList<Campo> campos= new ArrayList<Campo>();
        Campo campo;
        String nombre;
        String tipoDato;
        int longitud;
        boolean Null;
        for(int i=0; i < elementos.size(); i++)
        {
            
            nombre=elementos.get(i).getName();
            tipoDato=elementos.get(i).getAttributeValue("tipoDato");            
            longitud=Integer.valueOf(elementos.get(i).getAttributeValue("longitud"));
            Null=(elementos.get(i).getAttributeValue("Null").equals("true"))?true:false;
            campo=new Campo(nombre,tipoDato,longitud,Null);
            campos.add(campo);
            System.out.println("Nombre: "+nombre+" : "+i+":   "+ruta+nombreTabla+".xml");            
            
        }
        
        tabla=null;
        return campos;
    }
    public static Element obtenerTabla(String tabla,String ruta)
    {
        Element rootElement;
        SAXBuilder builder = new SAXBuilder();
        builder.setValidation(false); // se activa la validacion con la dtd
        Document doc=null; 
        File archivo;
        try
        {
            archivo=new File(ruta+tabla+".xml");
            doc =builder.build(archivo);            
            
        }catch(Exception e)
        {
            e.printStackTrace();
        }
        System.out.println("Documento validado correctamente");
        rootElement = doc.getRootElement();            
        if(rootElement==null)
        {
            System.out.println("Cuidado root es null");
        }
        System.out.println(rootElement.getChild("Campos").getName());
        
        return (Element)rootElement.clone();
    }
    
}
